草庐IT

Lua 基本语法

全部标签

c++ - 带有 VS2005/8 的 C++ Firefox 脚本插件的基本示例

我为Firefox编写插件的经验低于零。是否有人可以指出示例代码,说明如何使用VS2005/8在C++中完成此操作?我需要在托管html页面中使用JavaScript做的事情是这样的:varobj=document.getElementById("MyFFPlugin");varvalue=obj.CalculateValue;//Workwithcalculatedvalue 最佳答案 SDK包含有关如何编写mozzila插件的基本示例,可在此处下载:http://mxr.mozilla.org/seamonkey/source/

c++ - 如何将用 swig 包装的 c++ 类的实例推送到 lua 堆栈上?

我有一个用swig包装并用lua注册的类。我可以在lua脚本中创建此类的实例,一切正常。但是假设我在我的C++代码中创建了一个类的实例,并调用了新的X,并且我有lalua_stateL,其中有一个我想调用的函数,它接受一个参数,一个X的实例...我该如何调用该函数。这是(一些)有问题的代码(我省略了错误处理的东西):主要.cppclassGuiInst;extern"C"{intluaopen_engine(lua_State*L);}intmain(){GuiInstgui=newGuiInst;lua_State*L=luaL_newstate();luaopen_engine(L

c++ - boost::未排序模式的精神语法

我有一个模型的模式部分需要解析。假设它看起来像下面这样。{type="Standard";hostname="x.y.z";port="123";}属性是:元素可能显示为无序。所有属于架构一部分的元素都必须出现,不能有其他元素。所有元素的综合属性都放入一个结构中。(可选)模式在未来可能取决于类型字段——即,基于类型的不同字段——但我目前并不关心这一点。 最佳答案 根据Sprite论坛,答案如下。Youmightwanttohavealookatthepermutationparser:a^b^cWhichmatchesaorborc

c++ - 从哪里获得自定义 Visual Studio 2008 语法突出显示(复杂的)

好吧,我曾经看到过更多的语法高亮显示,而默认的语法高亮显示在VS2008中真的很有限,所以我在想,是否有这样的高亮显示:定义的变量会有自己的颜色。定义的函数会有自己的颜色。预定义函数会有自己的颜色(来自库等,可能会有自己的列表)。常量/枚举有自己的颜色。typedefs/defs会有自己的颜色。字符串(引号之间的东西)会有自己的颜色。floats/double的颜色会有所不同(会检查1.0f或1.0等)因为这太棒了,我以前没有在任何语法高亮系统中见过1,2,4,5,如果有这样的系统就好了。这会大大加快编程速度,因为如果我犯了错误,我会在编译前立即看到它。我看了一些MSDN网站,做起来非

c++ - 将 Lua 与 Visual Studio 2010 链接起来

我们使用Lua(www.lua.org)脚本让用户自定义我们用C++编写的服务器软件。目前我们正在将项目的32位Windows版本移植到VisualStudio2010。一旦VS2008一切正常,我们认为升级过程不会有问题。不幸的是,每当我们尝试将lualib(作为dll)链接到我们在VS2010中的项目时,链接器都找不到lua函数(错误消息如下所示)。似乎某些调用约定在2010上是错误的,例如应用程序可能正在寻找前缀为“_”的lua函数。要从我们的项目模块(C++)访问lua函数(用C编写),我们使用这个:extern"C"{#include"lua/src/lua.h"#inclu

c++ - 从 Visual Studio 构建/运行 Lua

在使用VisualStudio进行链接和构建方面,我完全是个菜鸟。我想将Lua集成到我的C++控制台应用程序中。有人可以一步一步地介绍如何从lua.org获取Lua依赖项,到在VS中实际运行“HelloWorldfromLua”,以及中间的所有步骤。在网上找到这样的东西非常困难,因为大多数都需要构建Lua等的先决知识。谢谢:) 最佳答案 从LuaforWindows开始包裹。它将为您提供包含Lua安装的独立电池。LuaforWindows不是官方发行版,但它深受Lua用户社区的推崇。您可以使用它的lua.exe来获得在Windows

c++ - 复杂的 C++ 模板语法

加入SO后,每当我打开讨论模板的主题时,我经常会看到这种语法。我试着在谷歌上搜索,但没有成功。templatechar(&f(T[1]))[1];//whatisit?whatistheuseof'[]'bracketsandtheintegerinit?templatechar(&f(...))[2];//notthiseitherintmain(){charc[sizeof(f(0))==2];}//andthis?从这里:SFINAEwithinvalidfunction-typeorarray-typeparameters?请解释我放置注释的3行。我特别想了解语法。我们可以只在

c++ - 复杂层次结构中的统一初始化语法?

我正在使用GCC4.4.5。这是我的问题的重现:#includeclassTest{public:Test(inta,intb=42):m_a(a),m_b(b){}private:intm_a;intm_b;};typedefstd::vectorTestList;classTestMaster{public:TestMaster(TestListtests=TestList()):m_tests(tests){}private:TestListm_tests;};现在,这有效:intmain(){TestListtest_list={15,22,38};return0;}但这不能编

c++ - boost::mpl::vector - 获取类型的基本偏移量

是否有可能获得mpl::vector的偏移量?在执行mpl::find之后在上面?换句话说,我想做的编译时间等同于:#include#include#includeintmain(){typedefstd::vectorv_type;v_typev_int(3);v_int[0]=1;v_int[1]=2;v_int[2]=3;v_type::iteratorit=std::find(v_int.begin(),v_int.end(),3);std::cout否则,我输入mpl::vector有一个type_trait::ordinalconst硬编码,我想尽可能避免这种情况。重要提示

c++ - 如何同步 Lua 和 C++ 垃圾回收

我正在尝试将lua嵌入到现有的C++应用程序中,并通过继承执行该工作的类为其制定了标准程序。我看到的严重问题是,如果暴露的对象在C++环境中被释放或删除,那么来自Lua的调用将导致崩溃。如果程序使用“delete”删除了内存,那么我也许可以在delete上写一个包装器来处理Lua中的释放,但是如果内存是由C++分配的,并在适当的变量超出范围时释放我看不到如何找到它然后在lua空间中采取适当行动的方法,有人对此有任何想法吗?谢谢。 最佳答案 一般来说,几乎每个Lua包装器都有一些方法来决定谁拥有什么内存。也就是说,一个对象是属于(因此